/*
*





                                                     .::;:,..
                                                .:irhGG8&8GX&&G99Ssi,
                                          .;15S8&HBM#MBMMMM#M#@@@@@@MAGSs:
                                       ;SXAMM####MMBMMMM##@########@@@@@@#B8h:
                                   ,19&##MMMMMMMBBBMM#MMMM#MMMMM######M###@@@#&h,
                                .r9H###MBM##MMMMBBBBBBBHHBBHHHBBBMMMMBBBMMMMM#@@#8r
                              .5B@@#BBMM#MBBBHHA&&A&&&&XX&&&&&AAHHHHHHHHBBM#####@@@&i
                            i9B@@#MBM#MBBA&&&GGXXXXX&&XXG8X&XX&&&AA&&&&&&AHBMM#####@@&1
                          ,8B#@@#MMMBAGGG898G8X&&GGXGGG8899988GXXXX&XXGGGGX&AHMM##@@@@@H5
                         :X#M####MB&9SSS53988888G88G89888G939338G9888888888GGX&HBM####@@@G:
                        hA#@###MMH8555h111h399S3G95S3S55398898333SS33S39399988GX&HMM###@@@B;
                      ,9#@@###MHG5srr1s111shh5S5551s1hsir15SS33333SS3S5SSS3398GX&ABMM###@@@Hh
                     iA@@#MBBHA3srriiiiss1rs1111sssriii;;;irs15SS3S5SS555S3398GX&&ABMM##@@@@@h
                    rM@@@#BBBH81rrriiirrsrrrriri;;;i;;;:;;;;;;rhh155h555SS338GGGX&&ABMM##@@@##S
                   sM@#@##MBH81rriiiiiiiiirri;;::,,,,,,:::;;i;;;rs11115SSSS39GG8GXX&HBMBM#@@#@@8.
                  1#######BHG5ririiii;;;;:::::,,,,,,,,,,,,:,:;;;;iirrrs1hh5SS988GX&&ABMBM##@###@X,
                  5MMMM##MM&5srrii;;i;;:,,,,,,,,,......,,,,,,,:::;;;;irrss1h5S98GGX&AHBBMM#####M@X:
                 hABBBMM##MXhiiiiii;;;:::,,,,,.........,,,,,,,:::;;:;;rrrr115S98GX&&AAHMMMM###MBB@Bs
                ;AMM##BMBMB91ii;;i;;i;;:,,,,...........,,,,,,,,,:;i;:iirs11h538GGXAAAAHMMMM##MBMM#@S
                sBHHBMBMMMB9ri;ii;;ii;;::,,,...........,,,,,,,,:;;i;;iiirss15398X&AAAAHB###M##MMMM#5
                r8XGAM#MMBH3rii;i;;;;;::,,,...........,,,,,,,,,:;ii;i;isss1hS398&&A&AAHBM#MMMBMM#M@G.
                 3&GBM#MMBG31rii;ii;;;:::,,,,.....,..,,,,,,,,,,:;;i;;;r1hh5S389G&X&X&HHHMMBHBMBBMBMA;
                 hAX&HBMHBA8hrii;ii;;;:::,,,,.,,,,,,.,,,,,,,,,,:;;;::;rh5h5S5SS8898&&HHAHBB&&BMMMBBH;
                 3839XHBGXAG5siiiii;;::::,,,,,,,,,,,,,,,,,,,,,,:::::;;r111h11h53339XAHBHHBH&&XBMM#MBr
                 h59GA&Xh883S1rrii;;;;::::,,,,,,,,,,,,,,,,,,.,:::::::;rrrrs111h5SS8&AHHHHBHX&XA#B#M#S
                s3S8AA895S5S5srriii;;;:,,,,,,,,,,,,.,,,,,,,,..,,,,::;;i;;ir1h1sh5S8&&&HBBBBHGG&MMM##A:
                h33938S51srS9srrrii;:::,,,,,,,,,,,,,,,,,,,.,..,,,,,:::;;;irs1sssh33GX&ABBBMMA8&HMM##Gr,.
              i59G89395S11h8Ssiii;;;;::,,,,,,,,,,,,,,,,,,,...,,,,,,:;;;:;iirrrs15539GX&BMMMM#H&ABM##HH#BS
             1&H&89XMA88138S1rri;;;:,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,:;;:;iirsrrsss1hS98&HBMMM#@AAB#@@@@@@@s
            .9@@X38&HH&91X81srii;:,,,........,,,,,,,,,,,:,,,,,,::,,:;;;irrrrri;;ir1538GXHMMM#@MBBMM@@@@@@3
            .S@#519GG&A93ASsr;r53G8SShr;,.   ..,,,::,,:;;;,:::;;:,,:;iiriiss11ss58GGGXX&HBBBM@@##M@@@@@@@9
             hM&h1h398XBAG1rr1139GAMM#B&9SShsr;::::,,:;i1r:ii;;;;;;ir1S99998GGG98G&HBMMMMMBBM#@@M#@@@@@@@s
             s&3hhs138ABBA1i;s551rr1hS99GX&A&&XG88351s1hhi:ii;is1hS9XAHAAHHBA&&XXGG8GAB###MBB#@M#@@@@@@@A
             .58XXX&HAAX98Xsi;rsr1511S8X&BBA@@@#BBHA&G31;:,:,:r5GHM#MHHMM@MX@@##B#MHX88AM#MMMMB#@@@@@@@@r
              r9AHBBHAX8h;9Gsiirs11X#@#9;9#H@##G8BHX835:..,,,:i5A@@BB@@BhSAA@MB&GBM#MA&XABBMMBM###@@@@@#;
              ;1GHH9ss93sii33;;;sr381ss;,.s8G9Sh9X8Srs1::,..,r53A@MM@MH&3ss3893S9GABBBHAXX&HABMMMHB#@@@@i
              ,s5&HG1i3S1r;:&8:r;ii:,,,,::,:iiis155r:i13h:..,;sSAA&BMA3hsrirrs1h553XHAXS9XAAHMM#MHB#@@@B,
               r1hXH8r1S1si:;1r8S8i:;::,,,,,:;ishSh;;hS9:.,,::i5X&&3AH&9hsi;;;;ir1S8G9h19GX&HBM##BB#@@@9
               .S51135h91sii;::1ri::::,,,,,:;irrii:;;;;i.,,::irSAH&BA&&85hsssssss111srrhSS8&HBMMMBM@@##1
                ;5r;s5585sri;::::,:::,,,,,,,:;::,ir;:,..,...,:i5&H&X&XG951iii;:::;:;isss19XABMM#MHM@@#B:
                .si;;rs391iii;;i;i;;:,,,,,,::;::;ri:,...,,...,i5XAH&8883S1sri;;;;is1h1s13X&BMM##BHH@@@X
                 11;iisS9Shriri;;ii;;:,,,,:;ii;;ii::,..,,,...:r38&AH&G93Ssssrrrrss11ssS8G&HBMM##BHB@@@1
                 ,hsiis59S55rs1sriii;::::::;;;;;;:ii,,,,,,...,;s5GAB@#HXSh1sriirs153S339XHM##M##BHB#@3
                  .rsissSh385135111rri;::::;:;iir;:::,,,,,,,,,;1GBHHM@#&35h511s11hS8988G&BMMM##MBBB#G
                    ;;irhs388S3Shh1sii;:::::;;i;;;;;:..,,,,,,:iSABH&X&#MX3hh1ss11h539&AHAHM#MMMM#HSh,
                      ,hih33SS155hh1rri::,,,::::;ri:,,..,,,,,,:18AA&AHM@B&9h1ss155S39&HBMMMMMMBM@8
                      .rss1hhhS5555hsii:::,,,,;rs;,,,,ii,,,,,,:s8HMM#@@#B&85hh1h5398XABM###BHBBM@S
                       ssissrh51hh5Shri::::,:;ri,.,..,:;:..,:;iSB@@@@@@#H&83SSSSS3G&HBBM#BBHBBB##s
                       :srr;rhs1sr1Sh1;;;:::;i;::,,,::;is1i;sh9A#@@@@@##MAXXGS38838&BBHHBBBH&BBMMi
                        i1rssshrrrhhhri;i;:;iiirri:i1sss9GS89G&XAB#@@@M##BA&&GG89X9GHMBX&XBBHBM#A.
                        .is1sh1isrss1iriiirrs15hS1s15511h3SX&&X&G&BBM#BMB#HAHHMHHXX&MBB&XGHBBB##3
                         .shhhiiii11risr;rh5S3XGSSS159S39335&HBAG9&HB#MHH#M###M&HAA&ABXXX&HBMM#Mi
                          .;s5si;rrrrshsrhGX&A&GXX8S93G88SS9G&&8G&HBMMM#@@@@##BH83X&8A89&HBBMM#G
                           .i51ssrrh11ssh38XABMBA&&8939S5SS33398G&AHBMM##@@MHHAA5S8G8GX&HHBBB##i
                             :s1srsssssss58&H#BSrriii;:,,::::;;;ish38GX&ABHHAA&G9GGGXX8ABBBBB@S
                              ;r1rr1531h55&H#BSrriiii:,,,:;;i;isssss59XXAHHAA&838HXABBAHBHBB@B.
                               ,r1153G8GX3XBH3hssrrssri11S9SSS3888838XA&BMHAAX9S8AMM#MBHBAH#@Bh
                                :rSGA&8938XGS11srii1s1338XA83&&&XX&&ABBBBHHAX9h9XHM#MHBA&HM@@M#S
                                :h1h985S39X8SSsri;;i;irhG8933G8898G&ABH&GXXG83h3A#@#MMMHA#@@@#@#5
                                 55;i1S9933393SS1ir;:,:iriii;:ish399GXGG3S398GSS&M@@MM#M@@@@@#@@@H9r
                                 ;XG1is39883hhSShrh3h;:;rsi;ii;rSS9G&&9S51r1SX&AHM##MM#@@@@@@@@@@@@@X;
                                  5GG8S5S835555sri13hirh5S533S558XX&&XX8h5hSXHHMM##M##@@@@@@@@@@@@@@@@H9i::.
                                  h99888S33S5irs:;is13S3593899&&XX&9993XG938H#M#@##@@@@@@@@@@@@@@@@@@@@@@@@MHAX3r
                                 .AG33S39GX9Ss1i;hss53SG3G8G8rshGHA9h839X38H#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B81i;.
                                  ABS555hSG&X&&S1h1138393399r,  h@@X8XX8XAH##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MAG9hi.
                                 .X@H51h11538&BMXX8981;,,,;iissrrH@@MBBM#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M
                               i5&M#@MXS1s55h59&HB#Gi,.,,,,:::is13H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                           s9XH##@##@@@#A91sss159XHS;;:,,,,,,:::;i18M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                        ,hH@@@@@#@@#@@@@@@#B&83h1hS8GS;,,,,,,,,,,:::r9B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                   .i5XB#@@@@@@@@@@@@@@@@@@@@@@#H&3155ri:,,,,,,,,,,,..;hX#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                ,r8B@@@@@@@@@@@@@@##@@@@@@@@@@@@@Gi.,.,;ri,.........,:;irhGB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
            ;h8A#@@@@@@@@@@@@@######@@@@@@@@@@@@G .::::::is;,.........:i1ss5&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        :18H@@@@@@@@@@@@@@@##@####@##@@@@@@@@@@@S ,,::,,:,:;;,.,,,.....;s9Sh9&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     iS&#@@@@@@@@@@@@@@@@@####@MM#####@@@@@@@@@@H;,,:::,,,,,,,,,,,...,:s589S8HMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 .s8H@@@@@@@@@@@@@@@@@@@@@#######M####@@@@@@@@@@B3,,,,,,,,,;;::::,,,:;sS398GAM#XGM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
HM@@@@@@@@@@@@@@@@@@@@@@@@@#############@@@@@@8s;isi:,,,,,,:irri;;;;ishSS3&XAM@#8SA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
@@@@@@@@@@@@@@@@@@@@@@@@@@@@####MM#######@@@@3:iiiiri::,,,..:r11srrrssh5hSXX&H#@#X8H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######MMM##@@@Arr:::,,:,,::,.,r1h5hss1h1h55S8XXAB#@#H&H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@@@M9;,::::,,,,:;;;isSSh115S3S5S399G&&HM###BAB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
@@@@@@@@@@@@@@@@###@@@@@@##############@#9i,ii,:,,,::,,,:;;ih3S1sS999933339G&&AH#@##MHM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##
@@@@@@@@@@@@@@######@@##########M######@h...,i:,,..,:::::irs5Sh115939993S3888X&HM####MB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####
@@@@@@@@@@@@@@@#####@###########M#####@&:,,,,,,,,..,;iri;iir11shh15S39SSS9938G&AHB##@#MM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####
@@@@@@@@@@@@@@@########################h,,,,,,,,;;;r11srrrrrs1s11shSS33993939GX&AB##@@#B#@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@#####
@@@@@@@@@@@@@#################MM######Ms,,....,,:;irs1srss111111111hh5S939339GXXAHMM##MMM@@@@@@@@@@@@@@@@@@@@@@@@@@@#########
@@@@@@@@@@@@@###################M######S,,,.,,::;irssh1ssss11hh1111111hS39988GXX&AHHBBBMM#@@@@@@@@@@@@@@@@@@@@@@@@@@@########
@@@@@@@@@@@@@@###################MM###@X;:,;;iirs11hh111srs1hh1111srs1539399988GXX&AHHHB##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####
@@@@@@@@@@@@@@################MM##MM###Mhi;;iirrss11srrsrrssrsrsssiiish5S33SSS3999GXX&AH#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@#
*
* */
package com.hemaapp.yjnh.activity;

import java.util.ArrayList;
import java.util.List;

import org.jivesoftware.smack.packet.Message;

import de.greenrobot.event.EventBus;
import de.greenrobot.event.Subscribe;
import xtom.frame.XtomActivityManager;
import xtom.frame.util.XtomSharedPreferencesUtil;
import xtom.frame.util.XtomToastUtil;

import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Looper;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.baidu.android.pushservice.PushManager;
import com.hemaapp.hm_FrameWork.HemaNetTask;
import com.hemaapp.hm_FrameWork.HemaUtil;
import com.hemaapp.hm_FrameWork.chat.ChatConfig;
import com.hemaapp.hm_FrameWork.chat.ChatConnectionListener;
import com.hemaapp.hm_FrameWork.chat.ChatReceiver;
import com.hemaapp.hm_FrameWork.chat.HemaChat;
import com.hemaapp.hm_FrameWork.chat.ChatConnectionListener.OnOtherLoginListener;
import com.hemaapp.hm_FrameWork.chat.ChatReceiver.OnNewMessageListener;
import com.hemaapp.hm_FrameWork.result.HemaArrayResult;
import com.hemaapp.hm_FrameWork.result.HemaBaseResult;
import com.hemaapp.hm_FrameWork.result.HemaPageArrayResult;
import com.hemaapp.yjnh.BaseApplication;
import com.hemaapp.yjnh.BaseFragmentActivity;
import com.hemaapp.yjnh.BaseHttpInformation;
import com.hemaapp.yjnh.BaseUpGrade;
import com.hemaapp.yjnh.R;
import com.hemaapp.yjnh.db.UserDBHelper;
import com.hemaapp.yjnh.fragment.HomePageFragment;
import com.hemaapp.yjnh.fragment.LiangkuFragment;
import com.hemaapp.yjnh.fragment.PersonalFragment;
import com.hemaapp.yjnh.fragment.RecommendFragment;
import com.hemaapp.yjnh.fragment.ShoppingCartFragment;
import com.hemaapp.yjnh.bean.EventBusConfig;
import com.hemaapp.yjnh.bean.EventBusMsg;
import com.hemaapp.yjnh.bean.SysInitInfo;
import com.hemaapp.yjnh.bean.User;
import com.hemaapp.yjnh.push.NoticeIntentService;
import com.hemaapp.yjnh.push.NoticePushService;
import com.hemaapp.yjnh.push.PushUtils;
import com.hemaapp.yjnh.view.BaseButtonDialog;
import com.hemaapp.yjnh.view.BaseButtonDialog.OnButtonListener;
import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechUtility;

public class MainActivity extends BaseFragmentActivity{

	private FrameLayout layout_fragment;
	private LinearLayout bottom;//屏幕底部的布局
	private LinearLayout layout_firstpage; // 首页
	private ImageView image_fristpage;
	private TextView text_fristpage;
	private LinearLayout layout_recommod; // 推荐
	private ImageView image_recommod;
	private TextView text_recommod;
	private LinearLayout layout_laoke; // 唠嗑
	private ImageView ivLiangku;
//	private TextView tvLiangku;
	private LinearLayout layout_shopcart; // 购物车
	private ImageView image_shopcart;
	private TextView text_shopcart;
	private LinearLayout layout_personal; // 我的
	private ImageView image_personal;
	private TextView text_personal;
	
	private BaseUpGrade upGrade;
	private boolean hasMeasured = false;
	private int bottomHeight = 0;//底部选项条的高度
	private int startTab = 0;//从其他界面进入时指定的tab，默认是首页
    private User user;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		setContentView(R.layout.activity_main);
		super.onCreate(savedInstanceState);
        user = getApplicationContext().getUser();
		toogleFragment(HomePageFragment.class);
		EventBus.getDefault().register(this);
		upGrade = new BaseUpGrade(this);
        if (user != null) {
            startPush();// 百度推送相关
            initChat();//连接聊天服务器
        }
		//初始化讯飞语音识别
		SpeechUtility.createUtility(mContext, SpeechConstant.APPID +"=56b1b2c9");
	}
	
//	//初始化布局高度，避免底部突起部分的遮盖
//	private void initView() {
//		ViewTreeObserver vto = bottom.getViewTreeObserver();
//		vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
//			public boolean onPreDraw() {
//				if (hasMeasured == false) {
//					bottomHeight = bottom.getMeasuredHeight();
//					// 获取到宽度和高度后，可用于计算
//					hasMeasured = true;
//				}
//				return true;
//			}
//		});
//	}

	private void initChat() {
        SysInitInfo initInfo = getApplicationContext().getSysInitInfo();
        ChatConfig.SERVER_IP = initInfo.getSys_chat_ip();
        String sys_chat_port = initInfo.getSys_chat_port();
        int port = Integer.parseInt(sys_chat_port);
        ChatConfig.SERVER_PORT = port;
        // 配置用户名 密码
        ChatConfig.LOGIN_CID = user.getId();
        String password = XtomSharedPreferencesUtil.get(mContext,
                "password");
        if (HemaUtil.isThirdSave(mContext)) {// 如果是第三方登录,密码默认为123456
            password = "123456";
        }
        ChatConfig.LOGIN_PWD = password;

        // 配置通知铃音id
        ChatConfig.noticeringid = R.raw.noticering;
        // 添加多点登陆监听
        ChatConnectionListener
                .setOnOtherLoginListener(new OtherLoginListener());
        ChatReceiver.setOnNewMessageListener(new NewMessageListener());
        ChatReceiver.setMediaNoticeEnable(false);
        ChatConnectionListener.setShowOtherLoginDialog(true);// 弹出多点登录弹窗
        // 启动服务
        HemaChat chat = HemaChat.getInstance(mContext);;
        chat.release();
        chat.init();
	}

	private class OtherLoginListener implements OnOtherLoginListener {

		@Override
		public void onCancel() {//不重新登I
//			getNetWorker().clientLoginout(
//					getApplicationContext().getUser().getToken());
            XtomSharedPreferencesUtil.save(mContext, "username", "");
            XtomSharedPreferencesUtil.save(mContext, "password", "");
            //清除保存的联系人和手机号
            XtomSharedPreferencesUtil.save(mContext, "bespeak_name", "");
            XtomSharedPreferencesUtil.save(mContext, "bespeak_mobile", "");
            UserDBHelper dbHelper = new UserDBHelper(mContext);
            dbHelper.clear();
            BaseApplication.getInstance().setUser(null);

            HemaChat.getInstance(mContext).release();//断开长链接
            PushUtils.saveUserId(mContext, "");
            PushUtils.saveChannelId(mContext, "");
            PushUtils.setBind(mContext, false);
            PushManager.stopWork(mContext);//停止百度推送
            com.igexin.sdk.PushManager.getInstance().stopService(mContext);//停止个推

            XtomActivityManager.finishAll();
            Intent it = new Intent(mContext, MainActivity.class);
            startActivity(it);
		}

		@Override
		public void onRelogin() {//重新登录
            //uu：多点登录后，与服务器连接自动断开，这时候要重新启动本地
            initChat();
		}

	}

	private class NewMessageListener implements OnNewMessageListener {

		@Override
		public void notice(Message message) {
			// sendNotice(message);//由于聊天通知采用推送机制，此处注释
			XtomToastUtil.showShortToast(mContext, message.getBody());
		}

	}
	
	@Override
	protected void onDestroy() {
        EventBus.getDefault().unregister(this);
		super.onDestroy();
	}

	@Override
	public void onResume() {
		if (upGrade != null) {
			upGrade.check();
		}
		super.onResume();
	}

	/**将底部tab标签复位
	 * 
	 */
	private void resetTab() {
        image_fristpage.setImageResource(R.mipmap.tab_home_n);
        text_fristpage.setTextColor(mContext.getResources().getColor(
                R.color.main_n));
        image_recommod.setImageResource(R.mipmap.tab_recommod_n);
        text_recommod.setTextColor(mContext.getResources().getColor(
                R.color.main_n));
        ivLiangku.setImageResource(R.mipmap.tab_liangku_n);
//        tvLiangku.setTextColor(mContext.getResources().getColor(
//                R.color.main_n));
        image_shopcart.setImageResource(R.mipmap.tab_cart_n);
        text_shopcart.setTextColor(mContext.getResources().getColor(
                R.color.main_n));
        image_personal.setImageResource(R.mipmap.tab_personal_n);
        text_personal.setTextColor(mContext.getResources().getColor(
                R.color.main_n));
	}
	
	private long exitTime = 0;
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK
				&& event.getAction() == KeyEvent.ACTION_DOWN) {
			if ((System.currentTimeMillis() - exitTime) > 2000) {
				Toast.makeText(getApplicationContext(), "再按一次退出程序",
						Toast.LENGTH_SHORT).show();
				exitTime = System.currentTimeMillis();
			} else {
				finish();
				System.exit(0);
			}
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}

	@Override
	protected void callBeforeDataBack(HemaNetTask netTask) {
		BaseHttpInformation information = (BaseHttpInformation) netTask
				.getHttpInformation();
		switch (information) {
            case DEVICE_SAVE:
                break;
            case DISTRICT_LIST:
                showProgressDialog("请稍后");
                break;
		}
	}

	@Override
	protected void callAfterDataBack(HemaNetTask netTask) {
		BaseHttpInformation information = (BaseHttpInformation) netTask
				.getHttpInformation();
		switch (information) {
            case DEVICE_SAVE:
                break;
		}
	}

	@Override
	protected void callBackForServerSuccess(HemaNetTask netTask,
			HemaBaseResult baseResult) {
		BaseHttpInformation information = (BaseHttpInformation) netTask
				.getHttpInformation();
		switch (information) {
            case CLIENT_LOGINOUT:
                XtomSharedPreferencesUtil.save(mContext, "username", "");
                XtomSharedPreferencesUtil.save(mContext, "password", "");
                //清除保存的联系人和手机号
                XtomSharedPreferencesUtil.save(mContext, "bespeak_name", "");
                XtomSharedPreferencesUtil.save(mContext, "bespeak_mobile", "");
                UserDBHelper dbHelper = new UserDBHelper(mContext);
                dbHelper.clear();
                BaseApplication.getInstance().setUser(null);

                HemaChat.getInstance(mContext).release();//断开长链接
                PushUtils.saveUserId(mContext, "");
                PushUtils.saveChannelId(mContext, "");
                PushUtils.setBind(mContext, false);
                PushManager.stopWork(this);//停止百度推送
                com.igexin.sdk.PushManager.getInstance().stopService(this);//停止个推

                XtomActivityManager.finishAll();
                Intent it = new Intent(mContext, MainActivity.class);
                startActivity(it);
                break;
		}
	}

	@Override
	protected void callBackForServerFailed(HemaNetTask netTask,
			HemaBaseResult baseResult) {
		BaseHttpInformation information = (BaseHttpInformation) netTask
				.getHttpInformation();
		switch (information) {
		case DEVICE_SAVE:
			log_i("硬件注册保存失败");
			break;
		case CLIENT_LOGINOUT:
			finish();
			System.exit(0);
			break;
		default:
			break;
		}
	}

	@Override
	protected void callBackForGetDataFailed(HemaNetTask netTask, int failedType) {
		BaseHttpInformation information = (BaseHttpInformation) netTask
				.getHttpInformation();
		switch (information) {
		case DEVICE_SAVE:
			log_i("硬件注册保存失败");
			break;
		case CLIENT_LOGINOUT:
			finish();
			System.exit(0);
			break;
		default:
			break;
		}
	}
	
	/**
	 * 显示或更换Fragment
	 * 
	 * @param c
	 */
	public void toogleFragment(Class<? extends Fragment> c) {
		FragmentManager manager = getSupportFragmentManager();
		String tag = c.getName();
		FragmentTransaction transaction = manager.beginTransaction();
		Fragment fragment = manager.findFragmentByTag(tag);

		if (fragment == null) {
			try {
				fragment = c.newInstance();
				// 替换时保留Fragment,以便复用
				transaction.add(R.id.fragment_contentview, fragment, tag);
			} catch (Exception e) {
				// ignore
			}
		} else {
			// nothing
		}
		// 遍历存在的Fragment,隐藏其他Fragment
		List<Fragment> fragments = manager.getFragments();
		if (fragments != null)
			for (Fragment fm : fragments)
				if (!fm.equals(fragment))
					transaction.hide(fm);

		transaction.show(fragment);
		transaction.commitAllowingStateLoss();
	}

	@Override
	protected void findView() {
		layout_fragment = (FrameLayout) findViewById(R.id.fragment_contentview);
		bottom = (LinearLayout) findViewById(R.id.layout_bottom);
		layout_firstpage = (LinearLayout) findViewById(R.id.layout_homepage);
		image_fristpage = (ImageView) findViewById(R.id.iv_homepage);
		text_fristpage = (TextView) findViewById(R.id.tv_homepage);
		layout_recommod = (LinearLayout) findViewById(R.id.layout_recommod);
		image_recommod = (ImageView) findViewById(R.id.iv_recommod);
		text_recommod = (TextView) findViewById(R.id.tv_recommod);
		layout_laoke = (LinearLayout) findViewById(R.id.layout_liangku);
		ivLiangku = (ImageView) findViewById(R.id.iv_liangku);
//		tvLiangku = (TextView) findViewById(R.id.tv_liangku);
		layout_shopcart = (LinearLayout) findViewById(R.id.layout_cart);
		image_shopcart = (ImageView) findViewById(R.id.iv_cart);
		text_shopcart = (TextView) findViewById(R.id.tv_cart);
		
		layout_personal = (LinearLayout) findViewById(R.id.layout_personal);
		image_personal = (ImageView) findViewById(R.id.iv_personal);
		text_personal = (TextView) findViewById(R.id.tv_personal);
	}

	@Override
	protected void getExras() {
		startTab = mIntent.getIntExtra("start", 0);
	}

	@Override
	protected void setListener() {
		layout_firstpage.setOnClickListener(tabClickListener);
		layout_recommod.setOnClickListener(tabClickListener);
		layout_laoke.setOnClickListener(tabClickListener);
		layout_shopcart.setOnClickListener(tabClickListener);
		layout_personal.setOnClickListener(tabClickListener);
	}

	private void startPush() {
        if (!PushUtils.hasBind(getApplicationContext())) {
//            PushManager.startWork(getApplicationContext(),
//                    PushConstants.LOGIN_TYPE_API_KEY,
//                    PushUtils.getMetaValue(this, "api_key"));

			// com.getui.demo.DemoPushService 为第三方自定义推送服务
			com.igexin.sdk.PushManager.getInstance().initialize(this.getApplicationContext(), NoticePushService.class);
			com.igexin.sdk.PushManager.getInstance().registerPushIntentService(this.getApplicationContext(), NoticeIntentService.class);
		}
    }

    private OnClickListener tabClickListener = new OnClickListener() {
		
		@Override
		public void onClick(View v) {
	        resetTab();
			switch (v.getId()) {
			case R.id.layout_homepage:
				image_fristpage.setImageResource(R.mipmap.tab_home_s);
				text_fristpage.setTextColor(mContext.getResources().getColor(
						R.color.colorPrimary));
				toogleFragment(HomePageFragment.class);
				break;
			case R.id.layout_recommod:
				image_recommod.setImageResource(R.mipmap.tab_recommod_s);
				text_recommod.setTextColor(mContext.getResources().getColor(
						R.color.colorPrimary));
				toogleFragment(RecommendFragment.class);
				break;
			case R.id.layout_liangku:
				ivLiangku.setImageResource(R.mipmap.tab_liangku_s);
				toogleFragment(LiangkuFragment.class);
				break;
			case R.id.layout_cart:
				image_shopcart.setImageResource(R.mipmap.tab_cart_s);
				text_shopcart.setTextColor(mContext.getResources().getColor(
						R.color.colorPrimary));
				toogleFragment(ShoppingCartFragment.class);
				break;
			case R.id.layout_personal:
				image_personal.setImageResource(R.mipmap.tab_personal_s);
				text_personal.setTextColor(mContext.getResources().getColor(
						R.color.colorPrimary));
				toogleFragment(PersonalFragment.class);
				break;
			default:
				break;
			}
		}
	};


    @Subscribe
    public void onEventMainThread(EventBusMsg msg) {
        if (msg.getType() == EventBusConfig.USER) {
            this.user = msg.getUser();
            if (user != null) {//新登录
                startPush();// 百度推送相关
                initChat();//连接聊天服务器
            }else {//退出登录
                HemaChat.getInstance(mContext).release();//断开长链接
                PushUtils.saveUserId(mContext, "");
                PushUtils.saveChannelId(mContext, "");
                PushUtils.setBind(mContext, false);
                PushManager.stopWork(this);//停止百度推送
				com.igexin.sdk.PushManager.getInstance().stopService(this);//停止个推
            }
        } else if (msg.getType() == EventBusConfig.PUSH_CID) {
            if (user != null) {//只有已登录状态下才保存硬件
                getNetWorker().deviceSave(user.getToken(), PushUtils.getUserId(mContext),
                        PushUtils.getChannelId(mContext));
             }
        }else if (msg.getType() == EventBusConfig.CLIENT_FREEZE) {
//            getNetWorker().clientLoginout(
//                    getApplicationContext().getUser().getToken());
            SysInitInfo info = getApplicationContext().getSysInitInfo();
            XtomSharedPreferencesUtil.save(mContext, "username", "");
            XtomSharedPreferencesUtil.save(mContext, "password", "");
			//清除保存的联系人和手机号
			XtomSharedPreferencesUtil.save(mContext, "bespeak_name", "");
			XtomSharedPreferencesUtil.save(mContext, "bespeak_mobile", "");
            UserDBHelper dbHelper = new UserDBHelper(mContext);
            dbHelper.clear();
            BaseApplication.getInstance().setUser(null);
			Looper.prepare();
			Activity activity = XtomActivityManager.getLastActivity();
            BaseButtonDialog dialog = new BaseButtonDialog(activity);
            dialog.setText("您的账户被冻结，请联系客服\n"+info.getSys_service_phone());
            dialog.setRightButtonText("确定");
            dialog.setButtonListener(new OnButtonListener() {

                @Override
                public void onRightButtonClick(BaseButtonDialog dialog) {
                    dialog.cancel();
					XtomActivityManager.finishAll();
					Intent it = new Intent(mContext, MainActivity.class);
					startActivity(it);
                }

                @Override
                public void onLeftButtonClick(BaseButtonDialog dialog) {

                }
            });
			Looper.loop();
        }
    }
}
